package com.waitingsnow.common.share.netEaseMicroblog.timeline
{
	import com.waitingsnow.common.share.bridia.net.oauth.BDOAuthConnection;
	import com.waitingsnow.common.share.netEaseMicroblog.NEMicroblog;
	import com.waitingsnow.common.share.netEaseMicroblog.data.NEMConfig;
	import com.waitingsnow.common.share.netEaseMicroblog.data.NEMObject;

	/**
	 *<p>NEMTimeLine：访问所有的timeline接口并抛出相应事件.</p>
	 */
	
	public class NEMTimeLine extends NEMObject
	{	
		/**
		 *
		 * <p>创建一个NEMTimeline对象.</p> 
		 * <p>详细请参考官方文档.</p>
		 */		
		
		public function NEMTimeLine (parent:NEMicroblog, oauth:BDOAuthConnection)
		{
			super (parent, oauth);
		}
		
		///
		///	[Home timeline]
		///
		
		/**
		 * 
		 * <p>/statuses/home_timeline</p>
		 * <p>获取当前登录用户的微博列表(timeline)</p>
		 * 
		 * @param count 	可选参数 : 数量，默认为30条，最大为200条
		 * @param since_id 	可选参数 : 该参数需传cursor_id,返回此条索引之前发的微博列表,不包含此条
		 * @param max_id 	可选参数 : 该参数需传cursor_id,返回此条索引之后发的微博列表,包含此条
		 * @param trim_user 可选参数 : 值为true时返回的user对象只包含id属性，该属性能在一定程度上减少返回的数据量
		 * 
		 */
		
		public function home_timeline (count:uint = 30, since_id:String = null, max_id:String = null, trim_user:Boolean = true):void
		{
			oauth.addOAuthParameters ("count", count.toString (), false);
			oauth.addOAuthParameters ("since_id", since_id, true);
			oauth.addOAuthParameters ("max_id", max_id, true);
			oauth.addOAuthParameters ("trim_user", trim_user.toString (), false);
			
			//

			super.connect ("HOME_TIMELINE");
		}
		
		///
		///	[Public timeline]
		///
		
		/**
		 * 
		 * <p>statuses/public_timeline</p>
		 * <p>获取最新的公共微博列表(随便看看),返回最新的20条微博。</p>
		 * 
		 * @param trim_user	可选参数 : 值为true时返回的user对象只包含id属性
		 * 
		 */		
		
		
		public function public_timeline (trim_user:Boolean = true):void
		{
			oauth.addOAuthParameters ("trim_user", trim_user.toString (), false);
			super.connect ("PUBLIC_TIMELINE");
		}
		
		///
		///	[Mentions]
		///
		
		/**
		 * 
		 * <p>statuses/mentions</p>
		 * <p>获取[at]评论当前登录用户的微博列表</p>
		 * 
		 * @param count		可选参数 : 数量，默认为30条，最大为200条
		 * @param since_id	可选参数 : 该参数需传cursor_id,返回此条索引之前发的微博列表,不包含此条
		 * @param max_id	可选参数 : 该参数需传cursor_id,返回此条索引之后发的微博列表，包含此条
		 * @param trim_user	可选参数 : 值为true时返回的user对象只包含id属性，该属性能在一定程度上减少返回的数据量
		 * 
		 */		
		
		public function mentions (count:uint = 30, since_id:String = null, max_id:String = null, trim_user:Boolean = true):void
		{
			oauth.addOAuthParameters ("count", count.toString (), false);
			oauth.addOAuthParameters ("since_id", since_id, true);
			oauth.addOAuthParameters ("max_id", max_id, true);
			oauth.addOAuthParameters ("trim_user", trim_user.toString (), false);
			
			super.connect ("MENTIONS");
		}
		
		///
		///	[User timeline]
		///
		
		/**
		 * 
		 * <p>/statuses/user_timeline</p>
		 * <p>获取指定用户的微博列表</p>
		 * <p>user_id、name与screen_name三个参数不能全部为空.</p>
		 * 
		 * @param user_id		可选参数 : 主要是用来区分用户ID跟微博昵称相同产生歧义的情况；
		 * @param screen_name	可选参数 : 可以传user_id或screen_name；
		 * @param name			可选参数 : 用户昵称；
		 * @param count			可选参数 : 数量，默认为30条，最大为200条请求示例
		 * @param since_id		可选参数 : 该参数需传cursor_id,返回此条索引之前发的微博列表，不包含此条
		 * @param max_id		可选参数 : 该参数需传cursor_id,返回此条索引之后发的微博列表，包含此条
		 * @param trim_user		可选参数 : 值为true时返回的user对象只包含id属性，该属性能在一定程度上减少返回的数据量
		 * 
		 */			
		
		public function user_timeline (user_id:String = null, screen_name:String = null, name:String = null, count:uint = 30, since_id:String = null, max_id:String = null, trim_user:Boolean = true):void
		{
			oauth.addOAuthParameters ("user_id", user_id, true);
			oauth.addOAuthParameters ("screen_name", screen_name, true);
			oauth.addOAuthParameters ("name", name, true);
			oauth.addOAuthParameters ("count", count.toString (), false);
			oauth.addOAuthParameters ("since_id", since_id, true);
			oauth.addOAuthParameters ("max_id", max_id, true);
			oauth.addOAuthParameters ("trim_user", trim_user.toString (), false);
			
			super.connect ("USER_TIMELINE");
		}
		
		
		///
		///	[Reweets of me]
		///
		
		/**
		 * 
		 * <p>statuses/retweets_of_me</p>
		 * <p>获取当前登录用户所发微博被转发的列表</p> 
		 * 
		 * @param count		可选参数 : 数量，默认为30条，最大为200条；
		 * @param since_id	可选参数 : 该参数需传cursor_id,返回此条索引之前发的微博列表,不包含此条；
		 * 
		 */			
		
		public function retweets_of_me (count:uint = 30, since_id:String = null):void
		{
			oauth.addOAuthParameters ("count", count.toString ());
			oauth.addOAuthParameters ("since_id", since_id);
			
			//
			
			super.connect ("RETWEETS_OF_ME");
		}
		
		///
		///	[Comments by me]
		///
		
		/**
		 * 
		 * <p>/statuses/comments_by_me</p>
		 * <p>获取当前登录用户发出的评论列表(timeline)</p>
		 * 
		 * @param count		可选参数 : 数量，默认为30条，最大为200条；
		 * @param since_id	可选参数 : 该参数需传cursor_id,返回此条索引之前发的微博列表,不包含此条；
		 * @param max_id	可选参数 : 该参数需传cursor_id,返回此条索引之后发的微博列表，包含此条；
		 * @param trim_user	可选参数 : 值为true时返回的user对象只包含id属性，该属性能在一定程度上减少返回的数据量。默认为true。
		 * 
		 */		
		
		public function comments_by_me (count:uint = 30, since_id:String = null, max_id:String = null, trim_user:Boolean = true):void
		{
			oauth.addOAuthParameters ("count", count.toString ());
			oauth.addOAuthParameters ("since_id", since_id);
			oauth.addOAuthParameters ("max_id", max_id);
			oauth.addOAuthParameters ("trim_user", trim_user.toString ());
			
			super.connect ("COMMENTS_BY_ME");
		}
		
		///
		///	[Comments to me]
		///
		
		/**
		 * 
		 * <p>/statuses/comments_to_me</p>
		 * <p>获取当前登录用户收到的评论列表(timeline)</p>
		 * 
		 * @param count		可选参数 : 数量，默认为30条，最大为200条；
		 * @param since_id	可选参数 : 该参数需传cursor_id,返回此条索引之前发的微博列表,不包含此条；
		 * @param max_id	可选参数 : 该参数需传cursor_id,返回此条索引之后发的微博列表，包含此条；
		 * @param trim_user	可选参数 : 值为true时返回的user对象只包含id属性，该属性能在一定程度上减少返回的数据量。默认为true。
		 * 
		 */
		
		public function comments_to_me (count:uint = 30, since_id:String = null, max_id:String = null, trim_user:Boolean = true):void
		{
			oauth.addOAuthParameters ("count", count.toString ());
			oauth.addOAuthParameters ("since_id", since_id);
			oauth.addOAuthParameters ("max_id", max_id);
			oauth.addOAuthParameters ("trim_user", trim_user.toString ());
			
			super.connect ("COMMENTS_TO_ME");
		}
		
		///
		///	[Group timeline]
		///
		
		/**
		 * 
		 * <p>/statuses/group_timeline</p>
		 * <p>获取当前登录用户某个分组的微博列表(timeline)</p>
		 * 
		 * @param count		可选参数 : 数量，默认为30条，最大为200条；
		 * @param since_id	可选参数 : 该参数需传cursor_id,返回此条索引之前发的微博列表,不包含此条；
		 * @param max_id	可选参数 : 该参数需传cursor_id,返回此条索引之后发的微博列表，包含此条；
		 * @param trim_user	可选参数 : 值为true时返回的user对象只包含id属性，该属性能在一定程度上减少返回的数据量。默认为true。
		 * 
		 */	
		
		public function group_timeline (count:uint = 30, since_id:String = null, max_id:String = null, trim_user:Boolean = true):void
		{
			oauth.addOAuthParameters ("count", count.toString ());
			oauth.addOAuthParameters ("since_id", since_id);
			oauth.addOAuthParameters ("max_id", max_id);
			oauth.addOAuthParameters ("trim_user", trim_user.toString ());
			
			super.connect ("GROUP_TIMELINE");
		}
	}
}